package com.ihakul.logger;

import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.LogRecord;

/**
 *  该类缓解了 {@code JRE} 中内置的 {@link java.util.logging.FileHandler} 的一个问题：<BR/>
 *  由于 {@code easy-logger} 库在将日志输出到 {@code Logcat} 的同时，还默认将内容写入到旋转的日志文
 *  件中，为了避免频繁的 {@code I/O} 操作引起 {@code ReferenceTable overflow(max=n)} 等意外，
 *  现将原 {@link FileHandler#publish(LogRecord)} 的写入操作进行强制缓冲（即使 {@link FileHandler#flush()} 失效）。
 *
 * @author Aaron
 * @version 2.1
 * Create at 2019/11/13
 */
public class BufferedFileHandler extends FileHandler {
    /** See {@link BufferedFileHandler}
     * and {@link #FileHandler FileHandler(String, int, int, boolean)*/
    public BufferedFileHandler(String pattern, int limit, int count, boolean append) throws IOException, SecurityException {
        super(pattern, limit, count, append);
    }

    @Override
    public synchronized void flush() {
        // Empty Handler
    }

    /**  Honest flush */
    public synchronized void sureFlush()
    {
        super.flush();
    }

}
